package com.xiahui.day09.Test3;

/**
 *  学生类
 *  特征--属性：姓名、年龄、性别、身高、体重、爱好、联系方式、学号
 *  行为--方法：学习  吃饭  睡觉 ……
 *  构造方法：用于创建对象的特殊方法
 *  书写格式：访问修饰符 +  类名(){}
 *  特点：
 *      名称与类名完全相同。
 *      没有返回值类型。
 *      创建对象时，触发构造方法的调用，不可通过句点手动调用
 *  作用：构造方法是用于属性初始化的
 *  有参构造方法可以在创建对象的同时 给属性赋值 但并不是用来取代对象名加点的方式给属性赋值的
 *  实际开发中，我们只会书写两个构造方法，即可满足95%的开发场景：无参 和 全参构造
 * 重点：如果没有在类中显示定义构造方法，则编译器默认提供无参构造方法。如果定义了有参构造方法，则无参构造
 * 方法将会被覆盖，如需使用，必须显式书写。
 * 构造方法重载：同一个类中的构造方法 参数列表不同
 *
 *
 */
public class Student {
    String name;
    int age;
    char sex;
    double height;
    String hobby;

    public void printStudent(){
        System.out.println("我的名字是" + name);
        System.out.println("我的年龄是" + age);
        System.out.println("我的身高是" + height);
        System.out.println("我的性别是" + sex);
        System.out.println("我的爱好是" + hobby);
    }

    public  Student(){
        System.out.println("Student类无参构造方法执行了");
    }

    public Student(String n){
        name = n;
    }

    public Student(String n,int a){
        name = n;
        age = a;
    }

    public Student(int a,String n){
        name = n;
        age = a;
    }

    public Student(String n,int a,char s){
        name = n;
        age = a;
        sex = s;
    }

    public Student(String n,int a,char s,double h){
        name = n;
        age = a;
        sex = s;
        height = h;
    }

    public Student(String n,int a,char s,double h,String ho){
        System.out.println("Student类有参构造方法执行了");
        name = n;
        age = a;
        sex = s;
        height = h;
        hobby = ho;
    }

    public static void main(String[] args) {
        Student stu1 = new Student();
        stu1.printStudent();
        System.out.println("----------------------------------------------------------------------");
        Student stu2 = new Student("赵四", 20, '男', 180.5, "尬舞");
        stu2.printStudent();
        System.out.println("----------------------------------------------------------------------");

        Student stu3 = new Student(20, "大拿");
        stu3.sex = '男';
        stu3.height = 177;
        stu3.hobby = "挣钱";
        stu3.printStudent();

    }


}


